#ifndef PID_H
#define PID_H

// 增量式 PID 控制器类（用于左右轮电机控制）
class IncrementalPID {
public:
    IncrementalPID(float Kp, float Ki, float Kd);
    int compute(int setpoint, int measured_value);


private:
    float Kp, Ki, Kd;
    int prev_error, prev_prev_error,error;
};

// 位置式 PID 控制器类（用于舵机控制）
// 这里只使用比例和微分项（PD 控制），因为一般不需要积分项
class PositionPID {
public:
    float Kp, Kp2, Kd, Kd2;
    float Kp_fuzzy,Kd_fuzzy;
    float Kp_circle, Kp2_circle, Kd_circle, Kd2_circle;
    float err_gain;
    PositionPID(float Kp, float Kp2, float Kd, float Kd2,float Kp_circle, float Kp2_circle, float Kd_circle, float Kd2_circle);
    float compute(float position, int gyroz);
    float compute_fuzzy(float position,int gyroz);
    float compute_circle(float position, int gyroz);
    float prev_position;

private:


};

#endif // PID_H

